Skip to content

图像处理模块总览 - Overview

本页说明什么

「图像处理」分类下的接口,是欧拉插件里围绕 屏幕截图、位图句柄、颜色模型、像素运算与经典图像算法 的一整套能力。它们为上层能力提供素材与算子支撑,例如:

  • 图像识别:找图、相似度、动画匹配等(依赖此处生成的 OLAImage 或文件);
  • 文字识别:截图识字、字库识字等(常配合取色、二值化、ROI);
  • 自动化脚本:截屏监控、取色判断 UI 状态、区域找色点击等。

下文中的「接口」均指 DLL/COM 暴露的函数;不是需要单独安装的第三方 SDK,但会涉及与 GDI/DXGI 等截图后端、颜色空间、图像算法 对应的概念,可按需查阅各接口详情页。


典型数据流(从哪开始、到哪结束)

下面同时给出三种形式,任一种看不清时请看表格(一定可见)。在浏览器中打开文档站点时,应能看到彩色矢量流程图;若仅在编辑器里预览 Markdown,编辑器可能不渲染 SVG/HTML。

结构化流程数据(表格)

顺序环节是否必选典型接口或含义
1得到图像Capture / GetScreenData / GetScreenDataPtr / LoadImage
2预处理(缓存、区域)SetSnapCacheTimeLockDisplayCroppedCroppedRef
3预处理(颜色与算法)Threshold、滤波与形态学、颜色转换类等
4使用图像GetColorPtrFindColor*CmpColor*、绘制与编码等
5释放资源FreeImagePtr 等(与插件分配句柄配对)

矢量流程图(SVG)

图像处理典型数据流典型数据流(从左到右)截图或载入图片可选:缓存锁屏 / 裁剪可选:颜色转换滤波 / 二值化取色 / 比色 / 找色绘制 / 编码保存或释放句柄FreeImagePtr 等橙虚线 = 按需;绿 = 使用像素;粉 = 收尾释放。整行过宽时,外层可横向滚动(见页面样式)。

卡片式步骤条(HTML)

与上表对应关系:下述第 2 点「加工」 合并了表中第 2、3 行(缓存/裁剪/颜色与算法预处理)。

  1. 得到图像Capture 落盘,或 GetScreenData / GetScreenDataPtr 得到字节流或内存图句柄;也可用 LoadImage 从文件/内存载入。
  2. 加工:按任务做缩放、旋转、阈值、模糊、形态学等(见下文分组)。
  3. 消费:取色、多点比色、区域找色、自己绘制标记等。
  4. 收尾:凡由插件分配的图片句柄,需按文档调用 FreeImagePtr 等释放,避免泄漏。

必读:颜色与点阵约定

在找色、比色、找色块等接口中,颜色往往不是单一 RGB,而是 区间、偏色、HSV/灰度 等组合条件。

文档作用
颜色模型说明 - ColorModel统一说明 colorJson、简化字符串、灰度/HSV 等写法,几乎所有颜色相关接口都会引用它
点阵颜色列表格式说明 - PointColorListFormat多点找色(FindMultiColor* 等)里 pointColorList 的格式,用于「多点同时满足」类逻辑。

建议先通读 ColorModel,再进入具体找色接口,否则会难以理解参数含义与容错范围。


一、截图、屏幕与缓存

接口用途概要
截图并保存成文件 - Capture按矩形区域截屏并 直接写入文件,适合落盘留证、简单流水线。
截图GIF - CaptureGif录制指定区域的 GIF 动画,用于短时动效或简易录屏。
截图返回字节流 - GetScreenDataBmp / GetScreenData截屏得到 BMP 或原始字节流,便于自行解析或传给其他模块,不经过插件图句柄。
获取指定区域图象 - GetScreenDataPtr截屏得到 OLAImage 句柄,是后续裁剪、找色、识别最常用的入口之一。
获取指定区域刷新率 - GetWindowsFps估算区域画面 FPS,用于判断动画、视频区是否流畅或卡死。
指定区域数据是否卡屏 - IsDisplayDead判断区域是否 长时间无变化(卡屏/静止),可用于监控或重试策略。
锁定当前屏幕图像 - LockDisplay与截图缓存配合,锁定当前帧显示数据,避免高速连续截屏时撕裂或不一致(详见该页说明)。
设置截图缓存时间 - SetSnapCacheTime调节 截图缓存有效期,平衡实时性与性能。
设置图片缓存开关 - SetImageCache控制 本地图片路径缓存 等行为,减轻重复 IO。

怎么选:要 文件Capture;要 内存里接着算GetScreenDataPtr;只要 原始字节GetScreenData* 系列。性能敏感场景关注 SetSnapCacheTimeSetImageCacheLockDisplay


二、载入、保存、拷贝与释放(生命周期)

接口用途概要
加载图片 - LoadImage文件路径 载入为 OLAImage
加载图片 - LoadImageFromRGBDataRGB 缓冲区 创建图像。
载入bmp图片 - LoadImageFromBmpDataBMP 内存块 创建图像。
加载文件夹下的所有图片 - LoadImagePath批量加载目录下图片(常用于 多模板、资源批处理)。
保存图片 - SaveImageFromPtr句柄 存盘。
拷贝图片 - CopyImage深拷贝 一份图像数据,修改互不影响。
读取图片字节流 - GetImageData / GetImageBmpData / GetImagePngData从句柄导出 原始/BMP/PNG 数据,便于网络传输或第三方库。
释放路径下图片内存 - FreeImagePath按路径批量释放 LoadImagePath 等产生的缓存。
释放所有内存 - FreeImageAll释放插件持有的 全部图像资源(慎用,确保无并发使用)。
释放指定图片内存 - FreeImagePtr最常用:释放单个 OLAImage 句柄。
释放指定图片内存1 - FreeImageData另一路释放接口,见该页与 FreeImagePtr 的差异说明。

原则:谁创建句柄(截图、载入、算法返回的新图),谁负责在不用时 Free,避免 GDI/内存持续增长。


三、几何:尺寸、裁剪、旋转、覆盖与 ROI

接口用途概要
裁剪图片 - Cropped深拷贝 子矩形,得到独立图像,后续修改不影响原图。
浅拷贝裁剪 - CroppedRefROI 视图,与原图 共享像素;省内存,但改 ROI 即改原图;父图释放后句柄失效。
获取图片大小 - GetImageSize查询宽高,用于循环与边界检查。
调整图片大小 - ReSize / ScalePixels缩放 到目标分辨率或按比例调整像素。
旋转图片 - RotateImage按角度旋转。
拼接图片 - ConcatImage多图 横向/纵向 拼接。
覆盖图片 - CoverImage一图 覆盖 到另一图指定位置(图层合成)。
获取ROI区域 - GetROIRegion提取 非零/感兴趣区域,常用于掩码、分割后处理。
快速ROI - FastROI快速获取 ROI 数据,偏重性能场景。

怎么选:需要 独立副本Cropped;只读或省内存用 CroppedRef;与 字库/识别 常配合 GetROIRegion / FastROI 缩小计算范围。


四、颜色:取色与格式互转

接口用途概要
取色 - GetColor绑定/屏幕上下文 取坐标颜色(与句柄无关的场景)。
获取像素颜色 - GetColorPtrOLAImage 句柄(x,y) 像素颜色。
ARGB颜色转为16进制格式 - ARGB2Hex / RGB2Hex数值颜色 → 字符串,便于日志与配置。
16进制格式颜色转为ARGB - Hex2ARGB / Hex2RGB字符串 → 数值。
RGB转HSV - RGB2HSV / 十六进制转HSV - Hex2HSV颜色空间转换,便于 光照不变 的阈值设计。
转换颜色格式 - ConvertColor在插件支持的颜色表示之间转换。

这些接口与 ColorModel 一起,构成 「取色 → 配置找色条件 → 回读结果」 的闭环。


五、分割与图像分析:阈值、连通域、差异

接口用途概要
图像阈值化 - Threshold全局或区域 二值化/分档,是后续形态学与区域分析的基础。
获取前景点 - GetForegroundPoints提取前景像素集合,用于统计或跟踪。
形态学梯度 - MorphGradient突出 边缘/边界 区域。
去除孤岛 - RemoveIslands去除小连通噪声点。
获取二值化图像 -GetThresholdImageFromMultiColorPtr / 获取指定区域二值化图像 -GetThresholdImageFromMultiColor多点颜色条件 生成二值图,衔接找色/字库流水线。
获取连通域 - GetConnectedComponents标记连通区域,用于 blob 分析、计数、质心
获取指定颜色数量 - GetColorNum / GetColorNumPtr统计符合颜色的像素数或比例。
移除图片差异部分 - RemoveImageDiff两图 差异掩码,适合简单变化检测。

六、比色:单点与多点

接口用途概要
对比颜色 - CmpColor / CmpColorPtr / CmpColorHex基础版:单点与 颜色模型 是否匹配。
对比颜色 - CmpColorEx / CmpColorPtrEx / CmpColorHexEx扩展版:更多控制项(详见各页)。
对比多色点 - CmpMultiColor / CmpMultiColorPtr一次判断 多个坐标 是否同时满足颜色条件,适合固定 UI 布局验色。

典型用途:脚本里「等按钮变绿再点」「血条是否低于某阈值」等,用 Cmp* 比用全图找色更轻量。


七、找色与找色块(区域搜索)

类型接口用途概要
单点找色FindColorFindColorEx在矩形内找 第一个 匹配点或带扩展条件。
枚举点FindColorListFindColorListEx找出 所有 匹配点(数量多时注意性能)。
多点找色FindMultiColor相对偏移多点同时匹配,适合 特征点阵(参见 PointColorListFormat)。
色块FindColorBlock*FindColorBlockList* 系列在区域内找 连通色块、多块、带 Ex 变体;用于按钮区域、血条、大块纯色区域等。

找色块接口较多(路径/指针、是否 Ex),按你的数据来源(文件句柄 vs 内存图)和是否要 列表结果 选择对应变体即可;用于整块连通区域(色块 / Blob)定位。


八、像素编辑与几何绘制

接口用途概要
创建图片 - CreateImage创建空白画布。
设置图片指定坐标的颜色 - SetPixel / SetPixelList单点或批量 改像素
设置指定颜色为新的颜色 - SetColorsToNewColor颜色替换/重着色
移除除指定颜色外的所有颜色 - RemoveOtherColors抠图式 保留指定颜色范围。
绘制圆形 - DrawCircle / 绘制矩形 - DrawRectangle / 绘制多边形 - DrawFillPoly在图像上 叠加矢量图形,便于调试或生成标注图。

九、滤波、边缘与形态学操作

接口用途概要
高斯模糊 - GaussianBlur降噪、平滑,降低锯齿对找色的干扰。
图像锐化 - Sharpen增强边缘。
Canny边缘检测 - CannyEdge提取轮廓,常用于 形状分析前处理
翻转图像 - Flip水平/垂直翻转。
形态学顶帽 - MorphTophat / MorphBlackhat突出 亮/暗 细节,用于不均匀光照下的目标增强。
膨胀 - Dilation / 腐蚀 - Erosion形态学基本运算,用于 连接断线、去噪
形态学开运算 - MorphOpen / MorphClose开运算去小凸刺,闭运算填小孔。
骨架化 - Skeletonize提取 中轴/骨架,用于细线条分析。

这些算子常组成 pipeline:Threshold → MorphOpen/Close → FindColorBlock,具体顺序依样本调节。


十、编码、二维码与二值打包

接口用途概要
图片转为base64字符串 - ImageToBase64 / Base64ToImage与 JSON、HTTP、剪贴板交互时常用。
生成二维码 - CreateQRCode / CreateQRCodeEx生成二维码图。
解析二维码 - DecodeQRCode从图里读二维码内容。
压缩二值化图像成字符串 - BitPacking / BitUnpacking二值图 紧凑编码,常与 字库、传输 场景一起使用。

十一、多图拼接(全景/长图流水线)

接口用途概要
从路径拼接图片 - ImageStitchFromPath从磁盘多图一键拼接(见页内参数)。
创建拼接实例 - ImageStitchCreate创建可复用的拼接上下文。
拼接图片追加 - ImageStitchAppend逐步追加子图。
获取拼接结果 - ImageStitchGetResult取出合成结果句柄或数据。
释放拼接实例 - ImageStitchFree释放拼接器资源。

适用于 滚动截屏、多 tile 合成 等;与单张 ConcatImage 相比,更偏 带匹配/对齐的长流程(细节见各页及 SetConfig 相关参数,如文档中提到的拼接匹配阈值)。


十二、调试与可视化

接口用途概要
弹窗显示图片 - ShowImage / ShowImageFromFile / ShowImageFromWindow调试时 快速预览 内存图、文件或绑定窗口区域。

与侧边栏其它分类的关系(避免走错门)

分类和「图像处理」的分工
图像识别模板匹配、相似度、找图坐标;输入往往是模板图 + 大图。
文字识别OCR、字库;常先用本模块截图/裁剪出 ROI。
视频处理视频帧级 读写与转码;单帧仍可转 OLAImage 再走图像处理。
图像数据库资源与图片 入库管理,与 LoadImage / 识别流水线配合。

建议阅读顺序

  1. 颜色模型说明 - ColorModel
  2. 获取指定区域图象 - GetScreenDataPtr + 释放指定图片内存 - FreeImagePtr
  3. 按任务选:找色FindColor* / FindMultiColor*抠图/噪声Threshold + 形态学;整块区域FindColorBlock*
  4. 需要 与找图/OCR 对接 时,跳到对应分类阅读返回 JSON、坐标约定。

若某接口在本总览中仅有一句话说明,以该接口的独立文档为准(参数默认值、边界、性能与线程安全均以详情页为准)。